基于USB總線的數(shù)控雕刻機控制系統(tǒng)設計
0.引言
隨著PC技術的迅速發(fā)展,其在工業(yè)控制領域得到廣泛應用。用PC技術開發(fā)的數(shù)控系統(tǒng)可以得到強有力的硬件和軟件支持,避開專有技術的制約,在較短時間內(nèi)達到較高水平[ 1 ]。USB 自問世以來,就以其速度快、成本低廉等諸多優(yōu)點逐步占領了PC及其外圍設備市場。隨著大量支持USB的個人電腦的普及, USB 逐步成為PC機的標準接口已經(jīng)是大勢所趨。本文介紹了一種基于USB 接口進行數(shù)據(jù)傳輸和控制的數(shù)控雕刻機的軟硬件設計方案。
1.系統(tǒng)硬件結構
整個系統(tǒng)的硬件結構如圖1所示。
圖1 系統(tǒng)硬件結構框圖
系統(tǒng)硬件主要由以下幾個部分組成:
(1) PC主機-CAD/CAM 建模,生成文本形式的G2Code,讀入G2Code對其進行解釋,調(diào)用直線或者圓弧插補,進行插補運算,將各種插補轉(zhuǎn)換為一系列相應的電機脈沖信息,并往USB通訊模塊傳輸。
(2)USB通訊模塊—接收主機傳輸來的包含電機運動的使能,方向,速度,脈沖信息的各種字節(jié),將這些邏輯控制電平和控制脈沖在相應的控制線上實現(xiàn)。
(3)運動控制卡—接收通訊模塊發(fā)出的控制電平和脈沖,將其放大并轉(zhuǎn)換為步進電機的控制脈沖。
(4) X, Y, Z向步進電機—接收運動控制卡的輸出脈沖,朝某個方向運轉(zhuǎn),并帶動相應的執(zhí)行機構運動。整個機構的運行方式是:雕刻頭在直流電機的帶動下做高速旋轉(zhuǎn),并在Z 方向做上下運動, X 2Y工作臺帶動工件做X、Y方向的進給運動,刀具和工件的運動的合成就可以得到文字和圖案的輪廓。
2.系統(tǒng)軟件結構
此雕刻系統(tǒng)中的軟件結構如圖2所示。運動控制程序負責實現(xiàn)步進電機的基本動作所需要的輸入信號。USB固件程序?qū)崿F(xiàn)設備的枚舉和端點與主機的通信。USB設備驅(qū)動程序為應用程序和底層驅(qū)動程序之間提供接口。PC機底層驅(qū)動負責處理總線枚舉、電源管理以及USB 事務的其它方面,Windows操作系統(tǒng)提供這類驅(qū)動程序。Windows操作系統(tǒng)還提供AP I函數(shù),來啟動應用程序與設備驅(qū)動程序之間的通信。USB應用程序的功能是提供操作和仿真界面、進行插補運算并和底層進行通信。可見,編程者需要開發(fā)的程序有PC機的USB 應用程序、USB 設備驅(qū)動程序以及單片機程序(包括PD IUSBD12的固件程序和運動控制程序) 。
圖2 系統(tǒng)的軟件結構框圖
3.插補控制的實現(xiàn)
3.1 步進電機的基本動作
對于各種復雜的運動軌跡,可以通過各種基本的插補來擬合的,而各種基本插補又是由步進電機的最基本的一些動作來完成的,這些基本的動作包括(以三維加工為例) : (0, 0, 0) 、(0, 0, n) 、( 0, n, 0) 、( n, 0, 0) 、(0, n, n) 、( n, 0, n) 、( n, n, 0) 、( n, n, n)其中n表示某路電機往某個方向步進的步數(shù),是一個整數(shù)。在PC主機客戶軟件中,將各種插補運動分解為了一系列的電機的基本動作,往往需要實現(xiàn)的基本動作中n = ±1。
3.2 電機基本動作的實現(xiàn)
用運動控制卡來控制步進電機,其輸入控制信息有三類:使能,方向,一定頻率的脈沖。據(jù)此將PC主機發(fā)往USB設備的數(shù)據(jù)進行一定的格式定義,以進行分類,然后在單片機中將接收到的數(shù)據(jù)按照此類格式進行分析,并實現(xiàn)其功能。
圖3 單片機處理接收到的數(shù)據(jù)
圖3是單片機程序內(nèi)處在主循環(huán)程序中的處理接收到的數(shù)據(jù)的流程。據(jù)此流程圖,可以看出要使電機沿某方向運轉(zhuǎn)一定的步數(shù),只需依次發(fā)送電機的使能方向信息,速度信息和一系列的步數(shù)信息,所接收的步數(shù)信息往往是n= ±1的電機的基本動作。為了避免電機的基本動作間因為接收數(shù)據(jù)的時間而變得不連續(xù),單片機采用了定時器中斷編程來控制脈沖輸出,而單片機前臺則負責接收主機發(fā)送過來的數(shù)據(jù),并等待上一個脈沖輸出的完成。AT89S52單片機片內(nèi)有3 路定時器中斷,剛好可以滿足雕刻機3個電機的控制需求,每路定時器中斷負責控制1個電機的控制脈沖輸出。
3.3 插補運算
直線插補和圓弧插補是兩種最重要的插補,許多復雜的曲線可以通過這兩種插補來擬合,根據(jù)數(shù)字積分器(DDA)的原理可以寫出這兩種插補運算的實現(xiàn)函數(shù)。圖4,圖5是在主機中客戶軟件層實現(xiàn)它們的流程圖。
對于其它類型的插補,實現(xiàn)的思路與上述的兩種類似,都需要根據(jù)插補的原理和算法來得到插補過程的每小段的增量,此增量就是步進電機的某個基本動作,將此基本動作序列依次發(fā)送到單片機底層即可實現(xiàn)刀具的插補運動。
圖4 DDA直線插補流程
圖5 DDA圓弧插補流程
3.4 與單片機的USB通訊
對于在客戶軟件層的插補運算,必須將電機的運動使能、方向、速度和運動步數(shù)信息發(fā)往底層單片機,實現(xiàn)發(fā)送的通訊方式是通過USB傳輸,USB傳輸速度快,可以滿足插補運算過程中的大量插補數(shù)據(jù)傳輸?shù)男枨蟆?/font>
(1) 電路連接圖
系統(tǒng)采用AT89S52控制PD IUSBD12傳輸數(shù)據(jù),并將控制信號實時輸出。其電路連接示意圖如圖6所示。
圖6 電路連接示意圖
(2) USB固件程序開發(fā)
USB支持4種傳輸類型:中斷,控制,塊和同步[ 3 ]。雕刻機系統(tǒng)可靠性是關鍵,在滿足數(shù)據(jù)傳輸速度要求的前提下,系統(tǒng)采用了控制傳輸和中斷傳輸兩種傳輸方式。
PD IUSBD12的固件設計成完全的中斷驅(qū)動,采用KeilC51進行編寫。USB的傳輸可在后臺進行,它的基本思想是:后臺ISR (中斷服務程序)和前臺主程序循環(huán)之間的數(shù)據(jù)交換通過事件標志和數(shù)據(jù)緩沖區(qū)來實現(xiàn)[ 4 ]。整個單片機程序中,對電機的控制脈沖的輸出的實時性要求最高,所以設定了定時器中斷的級別為高級別,對于單片機內(nèi)部的循環(huán)緩沖區(qū),定時器中斷程序檢查循環(huán)緩沖區(qū)的填充情況,并在允許的時候重新打開低級的中斷服務。
(3) USB設備驅(qū)動程序開發(fā)
開發(fā)USB 接口設備驅(qū)動程序必須遵守WDM(Windows驅(qū)動程序模型)規(guī)范。WDM驅(qū)動程序有兩個主要的初始化入口點—DriverEntry和AddDevice例程。DrvierEntry主要工作是把各種函數(shù)指針填入驅(qū)動程序?qū)ο螅宰云渌卣{(diào)例程[ 5 ]。PnP管理器將為每個硬件實例調(diào)用一次AddDevice例程,AddDevice函數(shù)的主要工作是創(chuàng)建一個設備對象并把它連接到設備堆棧中。驅(qū)動程序與應用程序和硬件之間通信都是IRP ( I/O請求包)完成的。在運行過程中,內(nèi)核會調(diào)用不同的回調(diào)例程來完成不同的IRP。DriverUnload則是在設備卸載時的清除例程。
(4) USB應用程序開發(fā)
完成了USB 固件程序開發(fā)和USB 設備驅(qū)動程序開發(fā)后,就可以編寫上層的USB 主機客戶程序,真正發(fā)揮USB設備的作用。應用程序通過訪問AP I通信函數(shù),使位于上層的應用程序與位于下層的設備驅(qū)動程序進行數(shù)據(jù)交換。
1)與USB設備建立通訊
采用了GU ID接口方式來打開設備, GU ID是在編寫設備驅(qū)動程序時獲得的,也<
提交
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉(zhuǎn)型
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡被Forrester評為XDR領域領導者
智能工控,存儲強基 | 海康威視帶來精彩主題演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會